#pragma once
#include "TypeDefs.h"
#include "IGame.h"
#include "IRenderer.h"
#include "Types.h"
#include <string>
class Entity
{
public:
	Entity(void);
	~Entity(void);
	virtual void Update(IGame *pGame);
	virtual void Draw(IRenderer *pRenderer);
	virtual std::string ToString() const;
	virtual void SetOrientation(vector3 value) { m_orientation = value; };
	virtual void SetPosition(vector3 value) { m_position = value; };
	virtual vector3 GetOrientation() { return m_orientation; };
	virtual vector3 GetPosition() { return m_position; };
	virtual vector3 GetDirection() const;
	virtual void MoveFacing(const vector3 &movement);

protected:
	AABoundingBox m_boundingBox;
	vector3 m_position;
	vector3 m_orientation;
};

